package com.qiyi.player.core.player
{
   import flash.events.IEventDispatcher;
   import com.qiyi.player.core.IDestroy;
   import com.qiyi.player.core.model.IReadStatus;
   import flash.display.Sprite;
   import com.qiyi.player.base.pub.EnumItem;
   import com.qiyi.player.core.view.ILayer;
   import com.qiyi.player.core.model.IStrategy;
   import com.qiyi.player.core.model.IMovieModel;
   import com.qiyi.player.core.model.IMovieInfo;
   import flash.geom.Rectangle;
   import flash.utils.ByteArray;
   
   public interface IPlayer extends IEventDispatcher, IDestroy, IReadStatus
   {
      
      function initialize(param1:Sprite, param2:Boolean = true, param3:Boolean = true, param4:Boolean = false) : void;
      
      function get dataProviderType() : EnumItem;
      
      function get isPreload() : Boolean;
      
      function set isPreload(param1:Boolean) : void;
      
      function get layer() : ILayer;
      
      function get strategy() : IStrategy;
      
      function set definitionStrategy(param1:EnumItem) : void;
      
      function get definitionStrategy() : EnumItem;
      
      function set outsite(param1:Boolean) : void;
      
      function get outsite() : Boolean;
      
      function get uuid() : String;
      
      function get videoEventID() : String;
      
      function set visits(param1:String) : void;
      
      function get movieModel() : IMovieModel;
      
      function get movieInfo() : IMovieInfo;
      
      function get errorCode() : int;
      
      function get errorCodeValue() : Object;
      
      function get authenticationResult() : Object;
      
      function get authenticationError() : Boolean;
      
      function get useDataModel() : Boolean;
      
      function get accStatus() : EnumItem;
      
      function get status() : EnumItem;
      
      function get currentTime() : int;
      
      function get bufferTime() : int;
      
      function get loadComplete() : Boolean;
      
      function get currentSpeed() : int;
      
      function get currentAverageSpeed() : int;
      
      function get playingDuration() : int;
      
      function get waitingDuration() : int;
      
      function get stopReason() : EnumItem;
      
      function get isTryWatch() : Boolean;
      
      function get tryWatchType() : EnumItem;
      
      function get tryWatchTime() : int;
      
      function get frameRate() : int;
      
      function get settingArea() : Rectangle;
      
      function get realArea() : Rectangle;
      
      function get realAdArea() : Rectangle;
      
      function set autoDefinitionlimit(param1:EnumItem) : void;
      
      function set pbSource(param1:String) : void;
      
      function set pbCoop(param1:String) : void;
      
      function set pbPlayListID(param1:String) : void;
      
      function set pbVVFrom(param1:String) : void;
      
      function set pbVFrm(param1:String) : void;
      
      function set pbVVFromtp(param1:String) : void;
      
      function set pbSrc(param1:String) : void;
      
      function get openSelectPlay() : Boolean;
      
      function set openSelectPlay(param1:Boolean) : void;
      
      function loadMovie(param1:LoadMovieParams) : void;
      
      function startLoad() : void;
      
      function stopLoad() : void;
      
      function play() : void;
      
      function pause() : void;
      
      function resume() : void;
      
      function seek(param1:uint) : void;
      
      function replay() : void;
      
      function refresh() : void;
      
      function clearSurface() : void;
      
      function stop() : void;
      
      function setArea(param1:int, param2:int, param3:int, param4:int) : void;
      
      function setPuman(param1:Boolean) : void;
      
      function setZoom(param1:int) : void;
      
      function capture(param1:int = 1) : Boolean;
      
      function getCaptureURL(param1:int = 1) : String;
      
      function inject(param1:String, param2:ByteArray, param3:Boolean, param4:Boolean) : void;
      
      function setADRect(param1:int, param2:int, param3:int, param4:int) : void;
      
      function setADVolume(param1:int) : void;
      
      function playAd(param1:String) : void;
      
      function pauseAd() : void;
      
      function stopAd(param1:String, param2:Boolean = false) : void;
      
      function seekAd(param1:uint) : void;
      
      function resumeAd() : void;
      
      function clearAd(param1:String) : void;
      
      function removeAdLayer() : void;
      
      function setEnjoyableSubType(param1:EnumItem) : void;
   }
}
